00001 <?php
00002
00003
00004
00005
00006
00007
00008
00009
00010
00011
00012
00013
00014
00015
00016
00017
00018
00019
00020
00021
00022
00023
00024
00025
00026 require_once('class.userdata.inc.php');
00027
00033 class UserDataPrinter {
00034
00035 private static $bbcode;
00036
00043 public static function printUserData($userdata) {
00044 if (!$userdata instanceof UserData) {
00045 return 'Bei der Ermittlung der benutzerspezifischen Daten ist ein Fehler aufgetreten.';
00046 }
00047
00048 if (count($userdata->getUserData()) === 0) {
00049 return 'Es konnten keine benutzerspezifischen Daten ermittelt werden.';
00050 }
00051
00052 ob_start();
00053
00054 $metadata = $userdata->getMetaData();
00055 $currentCourse = null;
00056 $currentModule = null;
00057
00058 echo '<p>Stand: '.date('j.n.Y H:i:s', time())
00059 .' (eStudy Version: '.ESTUDY_VERSION.')</p>';
00060
00061 if (($count = count($metadata[UserDataProvider::COURSE])) > 1) {
00062 echo '<p>Die folgenden <b>'.$count.'</b> Kurse wurden durchsucht:<ul>';
00063 foreach ($metadata[UserDataProvider::COURSE] as $courseID => $course) {
00064 echo '<li><a href="#course_'.urlencode($courseID).'">'.$course['name'].'</a>'.self::getFlags($course).'</li>';
00065 }
00066 echo '</ul></p>';
00067 }
00068
00069 echo '<p>Sie haben das Recht die über Sie gespeicherten Daten zu löschen!<br/>'
00070 .'Dies können Sie jeweils dort tun, wo Sie die Inhalte erstellt haben.</p>';
00071
00072 $toggleBackground = false;
00073 foreach ($userdata->getUserData() as $data) {
00074 foreach ($data as $key => $value) {
00075 $data[$key]= self::toHTML($value);
00076 }
00077
00078 if ($currentCourse !== $data[UserDataProvider::COURSE]) {
00079 if ($currentCourse !== null) {
00080 echo '</table>';
00081 }
00082
00083 echo '<table class="tableBorder" width="100%" cellspacing="0" cellpadding="3">'
00084 .'<colgroup><col width="20%"><col width="30%"><col width="50%"></colgroup>'
00085 .'<tr class="tableHead"><td colspan="3">'
00086 .$metadata[UserDataProvider::COURSE][$data[UserDataProvider::COURSE]]['name']
00087 .self::getFlags($metadata[UserDataProvider::COURSE][$data[UserDataProvider::COURSE]])
00088 .' <a href="#" id="course_'.urlencode($data[UserDataProvider::COURSE]).'" name="course_'.urlencode($data[UserDataProvider::COURSE]).'"> </a>'
00089 .'</td></tr>';
00090
00091 $currentCourse = $data[UserDataProvider::COURSE];
00092 $currentModule = null;
00093 }
00094 if ($currentModule !== $data[UserDataProvider::MODULE]) {
00095 if ($currentModule !== null) {
00096 echo '<tr class="'.(!$toggleBackground?'tableCellDark':'tableCell').'"><td colspan="3"><br/></td></tr>';
00097 }
00098 $currentModule = $data[UserDataProvider::MODULE];
00099 $toggleBackground = false;
00100
00101
00102 echo '<tr class="tableCellHead"><td colspan="3">'.$metadata[UserDataProvider::MODULE][$data[UserDataProvider::MODULE]]['name'].'</td></tr>'
00103 .'<tr class="tableCellDark"><td>Datum</td><td>Beschreibung</td><td>Inhalt</td></tr>';
00104 }
00105 echo '<tr class="'.($toggleBackground?'tableCellDark':'tableCell').'" valign="top">'
00106 .'<td>'.date('j.n.Y H:i:s', $data['date']).'</td>'
00107 .'<td>'.$data['hint'].'</td>'
00108 .'<td>'.$data['content'].'</td>'
00109 .'</tr>';
00110
00111
00112
00113
00114
00115
00116
00117
00118
00119
00120 $toggleBackground = !$toggleBackground;
00121 }
00122 echo '</table>';
00123
00124 return ob_get_clean();
00125 }
00126
00133 private static function toHTML($data) {
00134 if (is_string($data)) {
00135 if (! isset(self::$bbcode)) {
00136 self::$bbcode = new BBCode();
00137 }
00138 $data = self::$bbcode->parse($data);
00139 }
00140
00141 return $data;
00142 }
00143
00150 private static function getFlags($course) {
00151 $result = array();
00152
00153 if (! empty($course[UserDataProvider::POLICY])) {
00154 $result[] = 'Prüfungsleistung';
00155 }
00156 if (! empty($course[UserDataProvider::CLOSED])) {
00157 $result[] = 'geschlossen';
00158 }
00159
00160 if (count($result) > 0) {
00161 return ' ('.join(', ', $result).')';
00162 }
00163 return '';
00164 }
00165 }
00166 ?>